【Amazon Bedrock】RAGの回答生成ができるか試してみた【Anthropic Claude】
はじめに
新規事業部 山本です。
ChatGPT(OpenAI API)をはじめとしたAIの言語モデル(Large Language Model:以下、LLM)を使用して、チャットボットを構築するケースが増えています。通常、LLMが学習したときのデータに含まれている内容以外に関する質問には回答ができません。そのため、例えば社内システムに関するチャットボットを作成しようとしても、素のLLMでは質問に対してわからないという回答や異なる知識に基づいた回答が(当然ながら)得られてしまいます。
この問題を解決する方法として、Retrieval Augmented Generation(以下、RAG)という手法がよく使用されます。RAGでは、ユーザからの質問に回答するために必要そうな内容が書かれた文章を検索し、その文章をLLMへの入力(プロンプト)に付け加えて渡すことで、ユーザが欲しい情報に関して回答させることができます。
以前の記事では、新たにRAGの方式を考えてシステムを構築したり、システムを試用した結果の分析を行いました。
Google Cloud Enterprise SearchとRetrieveReadCompose方式RAGを利用して社内公式情報を全部質問できるようにしてみた | DevelopersIO
RAGを使った社内情報を回答できる生成AIボットで業務効率化してみた | DevelopersIO
この記事では、本日リリースされたAmazon Bedrockを早速使って、回答生成ができるかを簡単にためした内容について記載します。
手順
Bedrockのモデルは、最初の設定ままだと使用できないようです。おのやんさんが記事にされているので、こちらをご覧ください。
https://dev.classmethod.jp/articles/breaing-news-amazon-bedrock-was-released/
(Python・boto3から試す手順は青柳さんが記載されているので、こちらもご覧ください)
https://dev.classmethod.jp/articles/invoke-bedrock-form-lambda-function/
この記事では、マネジメントコンソールで実行した内容について記載します。Bedrockのページに移動し、「Playgrounds」の「Text」から試用画面に移動し、モデルとして「Anthropic」の「Claude V2」を選択しました。Temperatureには0を設定しました
入力文章は、以前の記事で使用した以下のプロンプトのテキストをそのまま利用しました。(以前の記事では、これをOpenAIのChatCompletion APIに渡してgpt4に回答を生成させたものです)
結果
以下のように回答が得られました。以前のプロンプトをそのまま流用した = 特にClaudeに合わせてプロンプトを試行錯誤(プロンプトエンジニアリング)していない、にも関わらず質が高い回答が得られました。プロンプトに改良の余地があることを考えると、かなり期待が持てそうです。他の方の記事でも触れられていますが、「オススメです」「思います」など、少し"人間らしい"文章が生成されているように感じられます。
Slackでアンケートを取る方法について、ドキュメント[2]に以下のような関連情報があります。 PollyというSlackアプリを利用することで、Slack上で投票アンケートを作成できます。 Pollyを利用するには、まずPollyアプリをチャンネルに招待する必要があります。招待コマンドは "/invite @Polly" です。 招待に成功すると、Pollyを使ってアンケートを作成できるようになります。質問文と選択肢をPollyに伝えるだけで、アンケートを作成できます。 ドキュメント[0]にはSlackでアンケートを取る別の方法も紹介されていますが、Pollyを使う方法が簡単なのでオススメです。 以上の通り、PollyというSlackアプリを利用するのが、Slackでアンケートを取る簡単な方法だと思います。
以前、gpt4で得られた回答と比較しても、含まれている情報に遜色がなさそうです。それぞれのモデルの特徴を活かして、適した使用場面を選ぶことができそうだと思いました。
Slackでアンケートを取る方法は、アプリ「Polly」を使用することで可能です。以下に手順を説明します。 1. まず、アンケートを取りたいチャネルにPollyを招待する必要があります。既にPollyが参加しているかどうかはメンバーリストから確認できます。 2. Pollyを参加させる場合は、チャネルで「/invite @Polly」と入力し、招待します。 3. 招待に成功すると、画面に表示が出ます。 4. アンケートを作成するには、Pollyに質問文と選択肢を伝えるだけです。 以上の手順でアンケートを作成することができます[0][2]。
今後
今回は1つの質問に対して回答生成を試しましたが、今後は他の質問でも試して、どのような回答が得られるか確認したいです。
また、文章検索(エンタープライズ検索)サービスにKendraを用いることで、RAGシステムを全てAWS内のサービスで構築できるので、そういった構成でどのようなパフォーマンスになるか検証しようと思っています。
まとめ
本日リリースされたAmazon Bedrockを簡単に試用してみました。RAGの回答生成として利用できそうな感触でした。